/**
 * 内置函数列表
 */

export const builtinFunctions = [
  'ABS',
  'ACCRINT',
  'ACCRINTM',
  'ACOS',
  'ACOSH',
  'ACOT',
  'ACOTH',
  'ADDRESS',
  'AGGREGATE',
  'AMORDEGRC',
  'AMORLINC',
  'AND',
  'ARABIC',
  'AREAS',
  'ARRAYTOTEXT',
  'ASC',
  'ASIN',
  'ASINH',
  'ATAN',
  'ATAN2',
  'ATANH',
  'AVEDEV',
  'AVERAGE',
  'AVERAGEA',
  'AVERAGEIF',
  'AVERAGEIFS',
  'BAHTTEXT',
  'BASE',
  'BESSELI',
  'BESSELJ',
  'BESSELK',
  'BESSELY',
  'BETA.DIST',
  'BETA.INV',
  'BETADIST',
  'BETAINV',
  'BIN2DEC',
  'BIN2HEX',
  'BIN2OCT',
  'BINOM.DIST',
  'BINOM.DIST.RANGE',
  'BINOM.INV',
  'BINOMDIST',
  'BITAND',
  'BITLSHIFT',
  'BITOR',
  'BITRSHIFT',
  'BITXOR',
  'CALL',
  'CEILING',
  'CEILING.MATH',
  'CEILING.PRECISE',
  'CELL',
  'CHAR',
  'CHIDIST',
  'CHIINV',
  'CHISQ.DIST',
  'CHISQ.DIST.RT',
  'CHISQ.INV',
  'CHISQ.INV.RT',
  'CHISQ.TEST',
  'CHITEST',
  'CLEAN',
  'CODE',
  'COLUMN',
  'COLUMNS',
  'COMBIN',
  'COMBINA',
  'COMPLEX',
  'CONCAT',
  'CONCATENATE',
  'CONFIDENCE',
  'CONFIDENCE.NORM',
  'CONFIDENCE.T',
  'CONVERT',
  'CORREL',
  'COS',
  'COSH',
  'COT',
  'COTH',
  'COUNT',
  'COUNTA',
  'COUNTBLANK',
  'COUNTIF',
  'COUNTIFS',
  'COUPDAYBS',
  'COUPDAYS',
  'COUPDAYSNC',
  'COUPNCD',
  'COUPNUM',
  'COUPPCD',
  'COVAR',
  'COVARIANCE.P',
  'COVARIANCE.S',
  'CRITBINOM',
  'CSC',
  'CSCH',
  'CUBEKPIMEMBER',
  'CUBEMEMBER',
  'CUBEMEMBERPROPERTY',
  'CUBERANKEDMEMBER',
  'CUBESET',
  'CUBESETCOUNT',
  'CUBEVALUE',
  'CUMIPMT',
  'CUMPRINC',
  'DATE',
  'DATEDIF',
  'DATEVALUE',
  'DAVERAGE',
  'DAY',
  'DAYS',
  'DAYS360',
  'DB',
  'DBCS',
  'DCOUNT',
  'DCOUNTA',
  'DDB',
  'DEC2BIN',
  'DEC2HEX',
  'DEC2OCT',
  'DECIMAL',
  'DEGREES',
  'DELTA',
  'DEVSQ',
  'DGET',
  'DISC',
  'DMAX',
  'DMIN',
  'DOLLAR',
  'DOLLARDE',
  'DOLLARFR',
  'DPRODUCT',
  'DSTDEV',
  'DSTDEVP',
  'DSUM',
  'DURATION',
  'DVAR',
  'DVARP',
  'EDATE',
  'EFFECT',
  'ENCODEURL',
  'EOMONTH',
  'ERF',
  'ERF.PRECISE',
  'ERFC',
  'ERFC.PRECISE',
  'ERROR.TYPE',
  'EUROCONVERT',
  'EVEN',
  'EXACT',
  'EXP',
  'EXPON.DIST',
  'EXPONDIST',
  'F.DIST',
  'F.DIST.RT',
  'F.INV',
  'F.INV.RT',
  'F.TEST',
  'FACT',
  'FACTDOUBLE',
  'FALSE',
  'FDIST',
  'FILTER',
  'FILTERXML',
  'FIND',
  'FINDB',
  'FINV',
  'FISHER',
  'FISHERINV',
  'FIXED',
  'FLOOR',
  'FLOOR.MATH',
  'FLOOR.PRECISE',
  'FORECAST',
  'FORECAST.ETS',
  'FORECAST.ETS.CONFINT',
  'FORECAST.ETS.SEASONALITY',
  'FORECAST.ETS.STAT',
  'FORECAST.LINEAR',
  'FORMULATEXT',
  'FREQUENCY',
  'FTEST',
  'FV',
  'FVSCHEDULE',
  'GAMMA',
  'GAMMA.DIST',
  'GAMMA.INV',
  'GAMMADIST',
  'GAMMAINV',
  'GAMMALN',
  'GAMMALN.PRECISE',
  'GAUSS',
  'GCD',
  'GEOMEAN',
  'GESTEP',
  'GETPIVOTDATA',
  'GROWTH',
  'HARMEAN',
  'HEX2BIN',
  'HEX2DEC',
  'HEX2OCT',
  'HLOOKUP',
  'HOUR',
  'HYPERLINK',
  'HYPGEOM.DIST',
  'HYPGEOMDIST',
  'IF',
  'IFERROR',
  'IFNA',
  'IFS',
  'IMABS',
  'IMAGINARY',
  'IMARGUMENT',
  'IMCONJUGATE',
  'IMCOS',
  'IMCOSH',
  'IMCOT',
  'IMCSC',
  'IMCSCH',
  'IMDIV',
  'IMEXP',
  'IMLN',
  'IMLOG10',
  'IMLOG2',
  'IMPOWER',
  'IMPRODUCT',
  'IMREAL',
  'IMSEC',
  'IMSECH',
  'IMSIN',
  'IMSINH',
  'IMSQRT',
  'IMSUB',
  'IMSUM',
  'IMTAN',
  'INFO',
  'INT',
  'INTERCEPT',
  'INTRATE',
  'IPMT',
  'IRR',
  'ISBLANK',
  'ISERR',
  'ISERROR',
  'ISEVEN',
  'ISFORMULA',
  'ISLOGICAL',
  'ISNA',
  'ISNONTEXT',
  'ISNUMBER',
  'ISO.CEILING',
  'ISODD',
  'ISOWEEKNUM',
  'ISPMT',
  'ISREF',
  'ISTEXT',
  'JIS',
  'KURT',
  'LARGE',
  'LCM',
  'LEFT',
  'LEFTB',
  'LEN',
  'LENB',
  'LET',
  'LINEST',
  'LN',
  'LOG',
  'LOG10',
  'LOGEST',
  'LOGINV',
  'LOGNORM.DIST',
  'LOGNORM.INV',
  'LOGNORMDIST',
  'LOOKUP',
  'LOWER',
  'MATCH',
  'MAX',
  'MAXA',
  'MAXIFS',
  'MDETERM',
  'MDURATION',
  'MEDIAN',
  'MID',
  'MIDB',
  'MIN',
  'MINA',
  'MINIFS',
  'MINUTE',
  'MINVERSE',
  'MIRR',
  'MMULT',
  'MOD',
  'MODE',
  'MODE.MULT',
  'MODE.SNGL',
  'MONTH',
  'MROUND',
  'MULTINOMIAL',
  'MUNIT',
  'N',
  'NA',
  'NEGBINOM.DIST',
  'NEGBINOMDIST',
  'NETWORKDAYS',
  'NETWORKDAYS.INTL',
  'NOMINAL',
  'NORM.DIST',
  'NORM.INV',
  'NORM.S.DIST',
  'NORM.S.INV',
  'NORMDIST',
  'NORMINV',
  'NORMSDIST',
  'NORMSINV',
  'NOT',
  'NOW',
  'NPER',
  'NPV',
  'NUMBERVALUE',
  'OCT2BIN',
  'OCT2DEC',
  'OCT2HEX',
  'ODD',
  'ODDFPRICE',
  'ODDFYIELD',
  'ODDLPRICE',
  'ODDLYIELD',
  'OR',
  'PDURATION',
  'PEARSON',
  'PERCENTILE',
  'PERCENTILE.EXC',
  'PERCENTILE.INC',
  'PERCENTRANK',
  'PERCENTRANK.EXC',
  'PERCENTRANK.INC',
  'PERMUT',
  'PERMUTATIONA',
  'PHI',
  'PHONETIC',
  'PI',
  'PMT',
  'POISSON',
  'POISSON.DIST',
  'POWER',
  'PPMT',
  'PRICE',
  'PRICEDISC',
  'PRICEMAT',
  'PROB',
  'PRODUCT',
  'PROPER',
  'PV',
  'QUARTILE',
  'QUARTILE.EXC',
  'QUARTILE.INC',
  'QUOTIENT',
  'RADIANS',
  'RAND',
  'RANDARRAY',
  'RANDBETWEEN',
  'RANK',
  'RANK.AVG',
  'RANK.EQ',
  'RATE',
  'RECEIVED',
  'REGISTER.ID',
  'REPLACE',
  'REPLACEB',
  'REPT',
  'RIGHT',
  'RIGHTB',
  'ROMAN',
  'ROUND',
  'ROUNDDOWN',
  'ROUNDUP',
  'ROW',
  'ROWS',
  'RRI',
  'RSQ',
  'RTD',
  'SEARCH',
  'SEARCHB',
  'SEC',
  'SECH',
  'SECOND',
  'SEQUENCE',
  'SERIESSUM',
  'SHEET',
  'SHEETS',
  'SIGN',
  'SIN',
  'SINH',
  'SKEW',
  'SKEW.P',
  'SLN',
  'SLOPE',
  'SMALL',
  'SORT',
  'SORTBY',
  'SQRT',
  'SQRTPI',
  'STANDARDIZE',
  'STDEV',
  'STDEV.P',
  'STDEV.S',
  'STDEVA',
  'STDEVP',
  'STDEVPA',
  'STEYX',
  'SUBSTITUTE',
  'SUBTOTAL',
  'SUM',
  'SUMIF',
  'SUMIFS',
  'SUMPRODUCT',
  'SUMSQ',
  'SUMX2MY2',
  'SUMX2PY2',
  'SUMXMY2',
  'SWITCH',
  'SYD',
  'T',
  'T.DIST',
  'T.DIST.2T',
  'T.DIST.RT',
  'T.INV',
  'T.INV.2T',
  'T.TEST',
  'TAN',
  'TANH',
  'TBILLEQ',
  'TBILLPRICE',
  'TBILLYIELD',
  'TDIST',
  'TEXT',
  'TEXTJOIN',
  'TIME',
  'TIMEVALUE',
  'TINV',
  'TODAY',
  'TRANSPOSE',
  'TREND',
  'TRIM',
  'TRIMMEAN',
  'TRUE',
  'TRUNC',
  'TTEST',
  'TYPE',
  'UNICHAR',
  'UNICODE',
  'UNIQUE',
  'UPPER',
  'VALUE',
  'VALUETOTEXT',
  'VAR',
  'VAR.P',
  'VAR.S',
  'VARA',
  'VARP',
  'VARPA',
  'VDB',
  'VLOOKUP',
  'WEBSERVICE',
  'WEEKDAY',
  'WEEKNUM',
  'WEIBULL',
  'WEIBULL.DIST',
  'WORKDAY',
  'WORKDAY.INTL',
  'XIRR',
  'XLOOKUP',
  'XMATCH',
  'XNPV',
  'XOR',
  'YEAR',
  'YEARFRAC',
  'YIELD',
  'YIELDDISC',
  'YIELDMAT',
  'Z.TEST',
  'ZTEST'
] as const;

export const builtinFunctionSet = new Set(builtinFunctions);

export type FunctionName = (typeof builtinFunctions)[number];
